#ifndef __ENEMYFONTS_H__
#define __ENEMYFONTS_H__

// Includes
#include <PA9.h>       // Include for PA_Lib


#include "Init.h"
#include "DisplayText.h"


//set enemy fonts
void setMonFont(u16 dmg, int sprNo, int monNo)
{
		//find an available sprite set, then set fonts
		if(PA_GetSpriteAnimFrame(0, 22) == 0)
		{
			//save time
			fontOneTime = Tick(gameClock);
			
			//set location
			PA_SetSpriteX(0, 20, (PA_GetSpriteX(0, sprNo) + 	(PA_GetSpriteLx(0, sprNo) / 2) - 8));
			PA_SetSpriteY(0, 20, (PA_GetSpriteY(0, sprNo) + 8));
			PA_SetSpriteX(0, 21, (PA_GetSpriteX(0, sprNo) + 	(PA_GetSpriteLx(0, sprNo) / 2)));
			PA_SetSpriteY(0, 21, (PA_GetSpriteY(0, sprNo) + 8));
			PA_SetSpriteX(0, 22, (PA_GetSpriteX(0, sprNo) + 	(PA_GetSpriteLx(0, sprNo) / 2) + 8));
			PA_SetSpriteY(0, 22, (PA_GetSpriteY(0, sprNo) + 8));
			
			//set font
			displayText(0, 20, dmg, 100);
			displayText(0, 21, dmg, 10);
			displayText(0, 22, dmg, 1);
			
			//save monster number
			fontOneMonNo = monNo;
		}
		else if(PA_GetSpriteAnimFrame(0, 25) == 0)
		{
			fontTwoTime = Tick(gameClock);
			
			PA_SetSpriteX(0, 23, (PA_GetSpriteX(0, sprNo) + 	(PA_GetSpriteLx(0, sprNo) / 2) - 8));
			PA_SetSpriteY(0, 23, (PA_GetSpriteY(0, sprNo) + 8));
			PA_SetSpriteX(0, 24, (PA_GetSpriteX(0, sprNo) + 	(PA_GetSpriteLx(0, sprNo) / 2)));
			PA_SetSpriteY(0, 24, (PA_GetSpriteY(0, sprNo) + 8));
			PA_SetSpriteX(0, 25, (PA_GetSpriteX(0, sprNo) + 	(PA_GetSpriteLx(0, sprNo) / 2) + 8));
			PA_SetSpriteY(0, 25, (PA_GetSpriteY(0, sprNo) + 8));
			
			displayText(0, 23, dmg, 100);
			displayText(0, 24, dmg, 10);
			displayText(0, 25, dmg, 1);
			
			fontTwoMonNo = monNo;
		}
		else
		{
			fontThreeTime = Tick(gameClock);
			
			PA_SetSpriteX(0, 26, (PA_GetSpriteX(0, sprNo) + 	(PA_GetSpriteLx(0, sprNo) / 2) - 8));
			PA_SetSpriteY(0, 26, (PA_GetSpriteY(0, sprNo) + 8));
			PA_SetSpriteX(0, 27, (PA_GetSpriteX(0, sprNo) + 	(PA_GetSpriteLx(0, sprNo) / 2)));
			PA_SetSpriteY(0, 27, (PA_GetSpriteY(0, sprNo) + 8));
			PA_SetSpriteX(0, 28, (PA_GetSpriteX(0, sprNo) + 	(PA_GetSpriteLx(0, sprNo) / 2) + 8));
			PA_SetSpriteY(0, 28, (PA_GetSpriteY(0, sprNo) + 8));
			
			displayText(0, 26, dmg, 100);
			displayText(0, 27, dmg, 10);
			displayText(0, 28, dmg, 1);
			
			fontThreeMonNo = monNo;
		}

}



//set enemy fonts
void updateMonFont(int sprNo, bool alive, int monNo)
{
	if((PA_GetSpriteAnimFrame(0, sprNo) > 16) && (PA_GetSpriteAnimFrame(0, sprNo) < 21))
	{
		//update sprite location
		for(int i = 20; i < 29; i++)
		{
			PA_SetSpriteY(0, i, (PA_GetSpriteY(0, i) - 1));
		}
		//PA_SetSpriteY(0, 20, (PA_GetSpriteY(0, 20) - 1));
		//PA_SetSpriteY(0, 21, (PA_GetSpriteY(0, 21) - 1));
		//PA_SetSpriteY(0, 22, (PA_GetSpriteY(0, 22) - 1));
	
		}
	
	//hide sprites
		//if((PA_GetSpriteAnimFrame(0, 40) == 21) || (!bg1.checkdead()))
	if((((fontOneTime + fontOneInc) <= Tick(gameClock)) || (!alive)) 
	&& (PA_GetSpriteAnimFrame(0, 22) != 0))
	{
		PA_SetSpriteAnim(0, 20, 0);
		PA_SetSpriteAnim(0, 21, 0);
		PA_SetSpriteAnim(0, 22, 0);
		
		//bg[monNo]->unsetHitFlag();
		fontOneMonNo = 999; //reset
	}
	
	if((((fontTwoTime + fontTwoInc) <= Tick(gameClock)) || (!alive))
	&& (PA_GetSpriteAnimFrame(0, 25) != 0))
	{
		PA_SetSpriteAnim(0, 23, 0);
		PA_SetSpriteAnim(0, 24, 0);
		PA_SetSpriteAnim(0, 25, 0);
		
		//bg[monNo]->unsetHitFlag();
		fontTwoMonNo = 999;
	}
	
	if((((fontThreeTime + fontThreeInc) <= Tick(gameClock)) || (!alive))
	&& (PA_GetSpriteAnimFrame(0, 28) != 0))
	{
		PA_SetSpriteAnim(0, 26, 0);
		PA_SetSpriteAnim(0, 27, 0);
		PA_SetSpriteAnim(0, 28, 0);
		
		//bg[monNo]->unsetHitFlag();
		fontThreeMonNo = 999;
	}
	
	//unset hit animation
	if((fontOneMonNo !=999) && ((fontOneTime + hitOneInc) <= Tick(gameClock)))
	{
		bg[fontOneMonNo]->unsetHitFlag(); //unset hit flag
	}
	
	if((fontTwoMonNo !=999) && ((fontOneTime + hitTwoInc) <= Tick(gameClock)))
	{
		bg[fontTwoMonNo]->unsetHitFlag();
	}
	
	if((fontThreeMonNo !=999) && ((fontOneTime + hitThreeInc) <= Tick(gameClock)))
	{
		bg[fontThreeMonNo]->unsetHitFlag();
	}
	
}

	


#endif  //__ENEMYFONTS_H__
